<html>
<body>
报告记录类并建议将它们转换为普通类。
<p>通过将快速修复应用到此记录，此检查可以将 Java 记录移动到使用早期 Java 版本的代码库。</p>
<p>
  请注意，生成的类并不完全等同于原始记录：
</p>
<ul>
  <li>结果的类不再扩展 <code>java.lang.Record</code>，因此 <code>instanceof Record</code> 返回 <code>false</code>。</li>
  <li><code>Class.isRecord()</code> 和 <code>Class.getRecordComponents()</code> 等反射方法会产生不同的结果。</li>
  <li>生成的 <code>hashCode()</code> 实现可能会产生不同的结果，因为故意没有指定计算记录 <code>hashCode</code> 的公式。</li>
  <li>记录序列化机制不同于普通类。
    有关详细信息，请参阅 <i>Java 对象序列化规范</i>。</li>
</ul>
<!-- tooltip end -->
<p>示例：</p>
<pre><code>
  record Point(int x, int y) {}
</code></pre>
<p>在应用快速修复后：</p>
<pre><code>
  final class Point {
    private final int x;
    private final int y;

    Point(int x, int y) {
      this.x = x;
      this.y = y;
    }

    public int x() { return x; }

    public int y() { return y; }

    @Override
    public boolean equals(Object obj) {
      if (obj == this) return true;
      if (obj == null || obj.getClass() != this.getClass()) return false;
      var that = (Point)obj;
      return this.x == that.x &&
             this.y == that.y;
    }

    @Override
    public int hashCode() {
      return Objects.hash(x, y);
    }

    @Override
    public String toString() {
      return "Point[" +
             "x=" + x + ", " +
             "y=" + y + ']';
    }
  }
</code></pre>
<p><small>2020.3 最新变化</small></p>
</body>
</html>